<?php
=========================	一：js基本语法	===================================

A：书写位置：js可以书写在页面的任何位置，顺序执行，不能在title标签里， 区分大小写，换行和分号都是语句的结束。
		1）<script src="./test.js"></script>

		2）<a href="javascript:alert('javascript：alert')">javascript alert('')</a>

		3）<a href="javascript://" onclick="alert('javascript://')">javascript://</a>

		4）	<a href="#test" onclick="alert('弹出锚点#test')">#test</a>
			<a name="test"></a>

		5）<script>alert('弹出的内容');</script>

B：区分大小写，

C：注释		//....单行注释		/*.....*/	多行注释

D：语句	语句结尾可用分号，也可不用（换行作为结束）

E：注意系统关键字和保留字。

F：变量的声明 	关键字	var		变量的声明，不适用 $
	1）var a,b;		定义多个变量用逗号，var a,b,c = 5;
		a = 5;
		b = 7;

	2）	var a;
		var b = 'test';
	3）作用域
			能使用局部变量的地方一定不要使用全局变量
			变量的优先级，局部>形参>全局

			实参如果少于形参，那么后面的没有实参的形参就是undefined
			实参多余形参，多余的实参会被舍弃

			function test(a,b){
				if(a == undefined) a = 10;
				if(b == undefined) b = 5;
				alert(a+b);
			}
			test();
			test(12,3);

G：数据类型
		1）基本数据类型是： 
				String 字符串 				
					①.单引号和双引号均可解析转义字符
					②.单引号和双引号均不能解析变量
					③.变量与字符串、变量与变量要使用+来连接。
					④.单引号和双引号可以互相嵌套，如果单引号中要嵌套单引号，需要将单引号转义，同理，双引号相同。

				Int 整型 （数值）	
						① Infinity（正无穷）和-Infinity（负无穷）	isFinite()函数来判断这个数值是不是无穷的。
						② 字符串与任何值运算得到的是NaN	NaN与任何职不相等（包括自身）isNan()	判断是不是NaN
						③ 三个数值转换函数
								parseInt（）		返回由字符串转换得到的整数。
								parseFloat （）		返回由字符串转换得到的浮点数。
								Number （）		true转 1 false转 0		null转 0		undefined转NaN

				Float 	
						①浮点 ==作为整型存在		不能参与运算（值不准确）

				 Boolean 布尔 
				 		①true		② false

		2）复合（引用）数据类型是： 
  					Object 对象 		Array	数组 
		3）特殊数据类型是： 
					Null 				Undefined 		
		4）数据类型的转换
					隐式类型转换		显式类型转换

H：运算符
	 1）   +  +=   这个+充当两个身份  一个是 数值相加   一个是字符串拼接
        2） if(){}else if(){}else if(){}else{}		//中间有空格
        3） ? :		三元运算符
        4）switch(a) 结构  case的值   类型严格匹配（）
		          var a = '10';			//这里有引号，下面的case值也要有引号，值要严格匹配。
		        switch(a){
		            case 5:
		                alert('N');
		                break;
		            case 10:
		                alert('Y');
		        }
	 5）in运算符		判断一个值是否属于某个数组或者一个属性是否属于一个对象
	 6）instanceof		判断一个对象的实例是否属于某个对象
	 7）new运算符		new 对象类型
	 8）void运算符		void运算符可以让操作数进行运算，但是却舍弃运算之后的结果。
	 9）typeof	检测数据类型	alert(typeof 值);
	 10）.对象属性存取运算符	我们使用.来调用和设置对象的属性或者方法 d.name
	 11）delete运算符	
		delete 对象名		delete 变量名			delete 对象名.属性		delete 数组[索引]	
	12）.this运算符		this代表的是当前对象。与php的$this的道理一样。
	13）if	if/else	switch 	while 	do/while 	for/in	for

I：数组
	 var arr = [];
        var arr = ['a','b','c','d'];
        arr[6] = 'test';

        var arr1 = new Array();       //定义一个空数组
        var arr1 = new Array(5);      //定义一个长度为5的数组
        var arr1 = new Array(5,6,7,8);  //将几个参数作为元素的数组
        var arr1 = new Array('5');			//5

        //alert(typeof arr1[0]);

        var obj = {};
        var obj = {a:'test',b:18};
        var obj = new Object(true);

        var bool = true;
        alert(typeof bool);

	var obj = {};
	alert(typeof obj);		//	object

	var obj = null;
	alert(typeof obj);		//	object

	var obj = undefined;
	alert(typeof obj);		//	undefined

	var  obj= 
	alert(typeof obj);		//	undefined

J：函数类型
	function test(){}
	var test = function(){};	
	var test = new Function();
	不传参数，则产生一个空数组，
	传一个参数，这个参数作为函数体，
	多个参数，前面的所有单数作为形参（凡在小括号里），最后一个参数作为函数体放在花括号里	
	<button onclick="test()">ceshi</button>
	<script>
	function test(){
		alert(1);
		return 'show';
	}
	test();
	alert(test);	
	var str = test();
	str;
	//函数的使用
	①		直接使用
	②		在表达式里面使用
	③		实践中绑定
	</script>

	var str = 'lamp';
	var newstr = (str.toUpperCase());
	alert(str);		//lamp
	alert(newstr);	//LAMP		toUpperCase()		字符转换为大写
	var arr = [5,3,7,9,3,1];
	alert(arr);		//	5,3,7,9,3,1
	var newarr = arr.sort();
	alert(arr);		//	1,3,3,5,7,9
	alert(newarr);	//	1,3,3,5,7,9
	alert(arr);		//	1,3,3,5,7,9
	str是一种数据类型，使用的对象时对应的String（包装）对象
	arr 本身就是一个对象，那么使用的时候就是修改自己
	对象的传参都是引用传递

	js 常量， 字面量，就是值
	var a = 'test';

========================================================================	
=========================	二：	JScript 函数	================================
A：七中函数
1）匿名和回调
        setInterval(function(){
            //这里用到了匿名和回调
        },50);

        function test(num){
            document.write(num);
            if(num > 0){
                test(num-1);
            }
            document.write(num);
        }

        test(5);

2）递归函数
        function login(){
            var msg = prompt('请输入用户名','SB250');
            if(msg == '我是个傻X'){
                alert('亲！你太诚实了！！');
            }else{
                login();   
            }
        }
        login();


        
3）自调函数		定义好之后，立即调用一次
        var test = function(){
            alert(1);
            return function(){
                alert(3);
            }
        }

4）匿名函数		匿名函数不要和自调函数出现在同一个文件中		
		/*如果前面出现了匿名函数，那么自调函数的第一个小括号会将上面的匿名函数调用一次，第二个小括号会将第一次调用的返回值当作函数调用，如果第一个返回的不是函数，那么报错！！   	*/     
	 (function(a){
            alert(a);
        })('hello');


5）返回函数的函数

        function test(){
            alert(1);
            return function(){
                alert(2);
            }
        }

        var a = test();
        a();

6）能够重写自己的函数
        function a(){
            alert('我在这做了很多事情');
            a = function(){
                alert('你已经干过我一次了');
            }
        }
        a();
        a();

7）构造函数
        function Person(name,age){
            this.name = name;
            this.age = age;

            this.say = function(){
                alert('我在喊话');
            }
        }

        var p1 = new Person('aaa',18);
        p1.say();

B：函数的闭包
1）闭包#1
        function A(){
            var a = 10;
            return function(){
                a++;
                alert(a);
            }
        }
        var a = A();
        a();
        a();

2）闭包#2
        var a;
        function A(){
            var b = 10;
            a = function(){
                b++;
                alert(b);
            }
        }        
        A();
        a();
        a();

3）在循环中使用闭包

        function A(){
            var a = [];

            for(var i = 0;i<3;i++){
                a[i] = function(){
                    alert(i);
                }
            }
            return a;
        }
        var a = A();
        a[0]();
        a[1]();
        a[2]();


4）
        function A(){
            var a = [];
            for(var i=0; i<3; i++){
                a[i] = (function(x){
                    return function(){
                        alert(x);
                    }
                })(i)
            }
            return a;
        }

        var a = A();
        a[0]();
        a[1]();
        a[2]();
        //和上面一样，将自调改造成了人工调用
        function A(){
            var a = [];
            function son(num){
                return function(){
                    alert(num);
                }
            }
            for(var i=0;i<3;i++){
                a[i] = son(i);
            }
            return a;
        }
        var a = A();
        a[0]();
        a[1]();
        a[2]();



===============================	三：对象	=================================
1）
		ActiveXObject 对象 		启用并返回一个 Automation 对象的引用。 
		Array 对象 				提供对创建任何数据类型的数组的支持。  
		Boolean 对象 			创建一个新的 Boolean 值。 
		Date 对象 				提供日期和时间的基本存储和检索。 
		Dictionary 对象 			存储数据键、项对的对象。 
		Enumerator 对象 		提供集合中的项的枚举。 
		Error 对象 				包含在运行 JScript 代码时发生的错误的有关信息。 
		FileSystemObject 对象 	提供对计算机文件系统的访问。 
		Function 对象 			创建一个新的函数。 
		Global 对象 			是一个内部对象，目的是将全局方法集中在一个对象中。  
		Math 对象 				一个内部对象，提供基本的数学函数和常数。 
		Number 对象 			表示数值数据类型和提供数值常数的对象。 
		Object 对象 			提供所有的 JScript 对象的公共功能。 
		RegExp 对象 			存储有关正则表达式模式查找的信息。 
		正则表达式对象 			包含一个正则表达式模式。 
		String 对象 				提供对文本字符串的操作和格式处理，判定在字符串中是否存在某个子字符串及确定其位置。  
		VBArray 对象 			提供对 Visual Basic 安全数组的访问。 
2）全局对象
        alert   NaN   parseInt  parseFloat  eval   escape  unescape
        var str = '[1,2,3,4,5,65]';
        //var str = '{"name":"\u5c0f\u4e3d","age":18}';
        var arr =eval('('+str+')');
        alert(arr[2]);

3） 包装对象
        var str = 'hello';
        str.len = 10;      //这里产生了一个对象(包装对象 String)
        str.toUpperCase();
        alert(typeof str.len);

4）扩展系统内建对象prototype

①       String.prototype.test = function(){
            alert(1);
        }
        String.prototype.name = 'ceshi';
        var str = 'hello';
        alert(str.name);
  
  ②      String.prototype.daozhuan = function(){
            return this.split('').reverse().join('');
        }
        var str = 'hello';
        alert(str.daozhuan());
        var str1 = new String('good');
        alert(str1.daozhuan());


 ③      Array.prototype.inArray = function(key){
            for(var i=0;i<this.length;i++){
                if(this[i] === key){
                    return true;
                }
            }
            return false;
        }
        var arr = [1,2,3,4,5,6];
        alert(arr.inArray(7));

==========================================================================
=================================	四：BOM	===============================
A：	Window对象
	1）窗口控制
		moveBy（x，y）	按照给定的像素参数移动窗口
		moveTo（x，y）	将窗口移动到指定坐标
		resizeBy（x，y）	按照指定的像素调整窗口的大小。
		resizeTo（x，y）	把窗口的大小调整到指定的宽度和高度。
		scrollBy（x，y）	按照指定的像素值来滚动内容。
		scrollTo（x，y）	把内容滚动到指定的坐标。 

	2）打开关闭窗口
		open（"url","窗口名称","窗口风格（宽高）"）打开一个新的浏览器窗口或查找一个已命名的窗口。
			风格：//实在一个字符串里面
				channelmode=yes|no|1|0 	是否使用剧院模式显示窗口。默认为 no。 
				directories=yes|no|1|0 		是否添加目录按钮。默认为 yes。 
				fullscreen=yes|no|1|0 		是否使用全屏模式显示浏览器。默认是 no。 
				height=pixels 				窗口文档显示区的高度。以像素计。 
				left=pixels 					窗口的 x 坐标。以像素计。 
				location=yes|no|1|0 		是否显示地址字段。默认是 yes。 
				menubar=yes|no|1|0 		是否显示菜单栏。默认是 yes。 
				resizable=yes|no|1|0 		窗口是否可调节尺寸。默认是 yes。 
				scrollbars=yes|no|1|0 		是否显示滚动条。默认是 yes。 
				status=yes|no|1|0 			是否添加状态栏。默认是 yes。 
				titlebar=yes|no|1|0 			是否显示标题栏。默认是 yes。 
				toolbar=yes|no|1|0 			是否显示浏览器的工具栏。默认是 yes。 
				top=pixels 					窗口的 y 坐标。 
				width=pixels 				窗口的文档显示区的宽度。以像素计。 

		close（）关闭浏览器窗口

	3）定时器
		setInterval（表达式,毫秒数）		周期执行
		clearInterval（） 					取消 setInterval() 设置

		setTimeout（表达式,毫秒数）		执行一次
		clearTimeout（） 					取消 setTimeout() 设置

	4）事件
		focus（）	对象.onfocus = function(){}		获得焦点
		blur（）	对象.onblur = function(){}		失去焦点
		load（）	加载网页时激发的事件
		unload		卸载网页时激发的事件
		resize		调整窗口大小事触发的事件
		error		代码执行错误的时候激发的事件

	5）对话框
		alert（）
		confirm（return '提示的字符串'）
		prompt （'提示字符串','缺省的文本'）

	6）属性
		①状态栏
			defaultStatus	改变浏览器状态栏的默认显示
			status			临时改变浏览器状态栏显示
		②窗口位置
			IE
				screenLeft		窗口距左上角位置
				screenTop		窗口距顶部角位置

				document.body.scrollLeft				声明当前文档向右滚动过的像素数
				document.documentElement.scrollLeft

				document.body.scrollTop				声明当前文档向下滚动过的像素数
				document.documentElement.scrollTop
			!IE
				screenX
				screenY
				pageXoffsest	当前文档向右滚动过的像素数
				pageYoffsest	当前文档向下滚动过的像素数
			FF
				innerWiidth	返回窗口文档县市区的宽度
				outerHeight	返回窗口外部高度
				outerWidth		返回窗口的文档县市区的宽度
		③其他属性
			opener		可以实现同域名下跨窗口体之间的通讯，一个窗体要包含另一个窗体
			closed		当前窗口是否关闭，true false
			name		设置或返回窗口的名称
			self			返回当前窗口的引用

B：navigator对象	包含了浏览器的整体信息
			appCodeName 		返回浏览器的代码名。
			appName				 返回浏览器的名称。 
			appVersion 			返回浏览器的平台和版本信息。
			cookieEnabled 			返回指明浏览器中是否启用 cookie 的布尔值。 
			platform 				返回运行浏览器的操作系统平台。
			userAgent 				返回由客户机发送服务器的 user-agent 头部的值。

C：history对象
		length 			返回浏览器历史列表中的 URL 数量。
		back() 			加载 history 列表中的前一个 URL。
		forward() 		加载 history 列表中的下一个 URL。
		go() 			加载 history 列表中的某个具体页面。 

D：screen对象
		availHeight 		返回显示屏幕的高度 (除 Windows 任务栏之外)。
		availWidth 			返回显示屏幕的宽度 (除 Windows 任务栏之外)。 
		colorDepth 		返回目标设备或缓冲器上的调色板的比特深度。 
		height 				返回显示屏幕的高度。 
		width 				返回显示器屏幕的宽度。 

E：location对象
		hash 			设置或返回从井号 (#) 开始的 URL（锚）。 
		host 			设置或返回主机名和当前 URL 的端口号。
		hostname 		设置或返回当前 URL 的主机名。
		href 			设置或返回完整的 URL。 
		pathname 		设置或返回当前 URL 的路径部分。
		port 			设置或返回当前 URL 的端口号。 
		protocol 		设置或返回当前 URL 的协议。
		search 			设置或返回从问号 (?) 开始的 URL（查询部分）。
		Location 		对象方法

		assign() 		载新的文档。
		reload() 		重新加载当前文档。 
		replace() 		用新的文档替换当前文档。 

F：document文档对象
	集合：
		anchors[]		锚点对象的数组
		images[]		图像对象的数组
		links[]			连接对象的数组
		forms[]			变淡对象的数组
	属性
		cookie			设置或返回当前文档有关的所有cookie
		domain			返回当前文档的域名
		referrer			返回载入当前文档的文档的URL
		title				返回当前文档的标题
		URL			返回当前文档的URL
	方法
		open（）		打开一个新的文档，并擦出旧文档的内容
						var newwin = window.open('','','width=300,height=300');
		close（）		关闭稳当输出流
		write（）		向当前文档追写文本
		writeln（）		与write相同，在<pre>中会追加换行

    ======================================================================
===========================四：BOM==================================
1）		Anchor对象
		Applet对象
		Cookie对象
		Embed对象
		Form对象
		Image对象
		Link对象
		Location对象
		Plugin对象

2）属性
		alinkColor		设置或返回被激活的超链接颜色
		anchors		该属性返回一个数组，代表单签文档中的锚
		applets			代表当前文档中的java小程序的数组
		bgColor		设置或返回当前文档的背景颜色
		cookie			可以读写cookie
		domain			指定当前文档所述的Internet域
		embeds		插件或ActiveX控件的数组
		fgColor			设置或返回当前文档的文本默认颜色
		forms			form表单对象的数组
		images			image对象的数组
		lastModified	返回当前文档的最后一次修改时间
		linkColor		设置或返回当前文档中未被访问过的连接的颜色
		referrer			返回连接到当前文档的HTML文档的URL
		title				设置或返回当前文档的标题
		URL			返回当前文档的url
		vlinkColor		设置或返回当前文档中已经访问过的超链接颜色
		links			link对象的数组
		location		与window对象的Location对象完全一致，不推荐使用
		plugins			与embeds属性相同

		IE浏览器定义的Document对象属性
		activeElement		引用文档中具有输入焦点的元素，活动的输入元素
		all					文档中所有元素的数组
		charset				返回文档所有的字符集
		children			数组，数组中元素为文档中元素的子元素
		defaultCharset		返回文档中使用的默认文字字符集
		expando			返回或设置是否阻止IE浏览器显示不存在属性的错误信息，true false
		parentWindow		返回包含文档的窗口对象
		readState			返回文档的装载状态	uninitialized 未开始家在文档		loading正在加载文档 interactive 加载的文档已经可以与用户进行交互，	complete 文档加载完毕

		Netscape浏览器定义的document对象属性
		height				文档的高度
		width				文档的宽度

3）文档对象的方法
		getElementById（）			指定id的对象引用
		getElementsByName（）		指定名称的对象集合
		getElementsByTagName（）	指定标签名的对象集合
		close（）						关闭一个文档的输出流，并显示已经在文档刘总的内容
		open（）						打开一个新的文档
		write（）						文档中添加数据
		writeln（）						与write()相同，只是在write()后面添加一个换行

		IE浏览器的对象方法
		elementFormPoint（）			返回位于指定位置的元素

		Netscape浏览器定义的document方法
		catureEvents（）				请求指定类型的事件
		getSelection（）				返回当前选中的文本文档
		releaseEvents（）				停止扑捉指定类型的事件
		routeEvent（）					传递已经捕捉到的事件

4）文本对象的引用方法
	forms[]					在froms[]数组中创建一个元素
	links[]					在 links[]数组中创建一个元素
	anchors[]				锚anchors[]数组中创建一个元素
	images[]				img元素都会在images[]数组中创建一个元素
	applets[]				文档中的applet元素都会在applets[]数组中创建一个元素

5）事件对象
	A：图像对象
		描述：引用images[]数组中的元素，
				document。images[i]
				document.images[imageName]
				document.imageName
				javaScript中支持使用构造函数来创建一个图片对象		width height
		属性：
				border		返回边框的宽度
				complete	布尔值，返回图片是否加载完毕
				height
				width
				hepace		整数，图片与文字水平方向的距离
				vspace		整数，图片与文字垂直方向的距离
				lowsrc		返回或设置替代图片的的低质量图片的url
				name
				src
		事件
				abort			当用户放弃加载图片
				click			单击鼠标
				dblclick			鼠标双击
				error			图片加载过程中失败
				load			成功加载图片时
				keydown		按下键盘上的键
				keypress		按下并释放键盘上的键
				keyup			释放键盘上的键
				mousedown	释放鼠标
				mouseup		释放鼠标
				mouseover		鼠标移动
				mouseout		鼠标移开

	B：连接对象
		描述：document.links[i]
		属性：
				hash		返回或设置link对象中的url锚部分
				host		返回或设置link对象中的url的域名部分和端口部分
				hostname	返回或设置link对象中的url域名部分
				href		返回或设置link对象中的完整url部分
				pathname	返回或设置link对象中的url路径部分，包括虚拟目录和文件名
				port		返回或设置link对象中的url端口部分
				protocol	返回或设置link对象中的url协议部分，包括协议和冒号
				search		返回或设置link对象中的url查询部分，包括分隔符 ？
				target		返回或设置link对象中的超链接打开的目标窗口，相当于a元素的target属性
				text			是Netscape浏览器支持的属性，用于显示link对象中的超链接文字，相当于<a></a>,必须在标签之间没有任何其他html标签的情况下才起作用，只读属性
				innerhtml	IE浏览器支持的属性，与test作用一直
		事件：
				click			单击
				dblclick			双击
				keydown
				keypress		释放键盘的键
				keyup
				mousedown
				mouseup
				mouseover
				mousemove
				mouseout
	C：锚对象
		描述：	document。anchors[i]
		属性：
				name
				text			是Netscape浏览器支持的属性，用于显示link对象中的超链接文字，相当于<a></a>,必须在标签之间没有任何其他html标签的情况下才起作用，只读属性
				innerhtml	IE浏览器支持的属性，与test作用一直

	D：Meta对象
		描述：<meta></meta>
		属性：
				content			<meta>元素的属性的值
				httpEquiv		把content属性连接到一个HTTP头部
				name			把content属性连接到某个名称
				scheme			设置或返回用于解释content属性的值的格式

	E：Table对象
		描述：<table></table>
		属性：
				className		设置或返回元素的className属性
				dir				设置或返回文本的方向
				lang			设置或返回元素的语言代码
				title				设置或返回元素的title属性
		方法：
				createCaption（）			为表格创建一个option
				createTFoot（）			在表格中创建一个空的tFoot元素
				createThead（）			在表格中创建一个空的tHead元素
				deleteCaption（）			从表格删除caption元素以及其内容
				deleteRow（）				从表格删除一行
				deleteTfoot（）			从表格中删除tFoot元素及其内容
				deleteThead（）			从表格中删除Thead元素及其内容
				insertRow（）				在表格中插入新的一行

	F：style对象
		document.getElementById('id').style.property = '值'

	G：Event对象
		事件：	
				onabort		图像加载被中断
				onblur			元素失去较焦点
				onchange		域的内容被改变
				onclick			点击
				ondbliclick		双击
				onerror			文档或图片加载错误的时候
				onfocus		元素获得焦点
				onkeydown		键被按下
				onkeypress		按下的键被松开（按下与起来）
				onkeyup		按键松开
				onload			一张页面或一张图像假爱完成
				onmousedown
				onmousemove
				onmouseout
				onmouseup
				onreset			重置按钮被点击
				onresize		窗口被重新调整大小
				onselect		文本被选中
				onsubmit		确认按钮贝被点击
				onunload		用户退出页面
		鼠标i暗盘属性：
				altKey 			返回当事件被触发时，"ALT" 是否被按下。
				button 			返回当事件被触发时，哪个鼠标按钮被点击。
				clientX 			返回当事件被触发时，鼠标指针的水平坐标。
				clientY 			返回当事件被触发时，鼠标指针的垂直坐标。
				ctrlKey 			返回当事件被触发时，"CTRL" 键是否被按下。
				metaKey 		返回当事件被触发时，"meta" 键是否被按下。 
				relatedTarget 	返回与事件的目标节点相关的节点。 
				screenX 		返回当某个事件被触发时，鼠标指针的水平坐标。
				screenY 		返回当某个事件被触发时，鼠标指针的垂直坐标。
				shiftKey 		返回当事件被触发时，"SHIFT" 键是否被按下。 

		IE	属性		
			cancelBubble 			如果事件句柄想阻止事件传播到包容对象，必须把该属性设为 true。 
			fromElement 			对于 mouseover 和 mouseout 事件，fromElement 引用移出鼠标的元素。 
			keyCode 				对于 keypress 事件，该属性声明了被敲击的键生成的 Unicode 字符码。对于 keydown 和 						keyup 事件，它指定了被敲击的键的虚拟键盘码。虚拟键盘码可能和使用的键盘的布局相关。 
			offsetX,offsetY 			发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。 
			returnValue 			如果设置了该属性，它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle								，可以取消发生事件的源元素的默认动作。 
			srcElement 				对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。 
			toElement 				对于 mouseover 和 mouseout 事件，该属性引用移入鼠标的元素。 
			x,y 						事件发生的位置的 x 坐标和 y 坐标，它们相对于用CSS动态定位的最内层包容元素。 

====================================================================
 ===========================	四：节点	================================

        DOM 节点
            整个文档是一个文档节点 
            每个 HTML 标签是一个元素节点 
            包含在 HTML 元素中的文本是文本节点 
            每一个 HTML 属性是一个属性节点 
            注释属于注释节点 

        节点信息：
            nodeName（节点名称） 
                元素节点的 nodeName 是标签名称 
                属性节点的 nodeName 是属性名称 
                文本节点的 nodeName 永远是 #text 
                文档节点的 nodeName 永远是 #document 
                
            nodeValue（节点值） 
                对于文本节点，nodeValue 属性包含文本。
                对于属性节点，nodeValue 属性包含属性值。
                nodeValue 属性对于文档节点和元素节点是不可用的。
            
            nodeType（节点类型） 
                元素 1 
                属性 2 
                文本 3 
                注释 8 
                文档 9 
            
        

        根节点：
            document.documentElement     //html
            document.body                //body
            

        定位节点：
            docuemnt.getElementById();
            docuemnt.getElementsByTagName();

        找节点：[属性]
            childNodes      //所有子节点
            children        //所有的子元素节点
            firstChild
            lastChild
            nextSibling
            previousSibling
            parentNode

        创建节点：
            createElement('div')
            setAttribute('title','hello');
        克隆节点：
            cloneNode() 

        删除节点：
            removeChild();
            removeAttribute();

        替换节点：
            replaceChild()

        插入节点：
            appendChild();
            insertBefore();



=========================五：		====================================

直接绑定事件
var e = e || event
在标签中绑定必须传实参

检测鼠标按键   e.button
检测键盘按键   e.keyCode    写在  onkeydown  事件里面

         offset   offsetLeft  offsetTop   offsetHeight  offsetWidth
       client   clientLeft  clientTop   clientHeight  clientWidth
         scroll   scrollLeft  scrollTop   scrollHeight  scrollWidth


=========================六：		====================================

=========================七：		=====================================

=========================八：		=====================================

=========================九：		====================================

=========================十：		=====================================
